//
// Created by hsj on 2022/1/5.
//
#include <iostream>
#include "t_arr_pointer.h"

using namespace std;
const int SIZE_ARR = 8;

//数组传递参数（作为指针传递）
void test_arr_pointer(){
    int cookies[SIZE_ARR]{1,2,3,4,5,6,7,8};
    //    这里获取数组长度：int leng = sizeof cookies/sizeof cookies[0]，这是正确的方式
    cout<<"array sizeof:"<<sizeof cookies<<endl;
    int total = arr_count(cookies,SIZE_ARR);
    cout<<"total count is:"<<total<<endl;
}
//计算数组的总数
int arr_count(int arr[],int n){
//    arr作为指针传递，sizeof无法获取数组的长度，只能获取指针(int*)长度: 4字节或者8字节
//    不要这样子数组传参获取长度：int leng = sizeof arr/sizeof arr[0]，这是错误的方式
//    warning: 'sizeof' on array function parameter 'arr' will return size of 'int*' [-Wsizeof-array-argument]
    cout<<"pointer sizeof (return size of 'int*'):"<<sizeof arr<<endl;
    int total = 0;
    for (int i = 0; i < n; ++i) {
        total += arr[i];
    }
    return total;
}